home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / eflibpt4.zip / DEMO / TESTING / DATA3.PAS < prev    next >
Pascal/Delphi Source File  |  1996-08-16  |  2KB  |  44 lines

  1. { Borland Pascal Extended Function Library - EFLIB (C) Johan Larsson, 1996
  2.   Testing; polymorphic duplication of data types
  3.  
  4.   EFLIB IS PROTECTED BY THE COPYRIGHT LAW AND MAY NOT BE COPIED, SOLD OR
  5.   MANIPULATED. FOR MORE INFORMATION, SEE PROGRAM MANUAL! THIS DEMONSTRAT-
  6.   ION PROGRAM MAY FREELY BE USED AND DISTRIBUTED.                          }
  7.  
  8.  
  9. uses EFLIBDEF, EFLIBBAS, EFLIBDAT;
  10.  
  11. var Data1, Data2 : DataObjectPointerType;
  12.     SomeData : string;
  13.  
  14.  
  15. begin
  16.      { Initialize a linked list }
  17.      Data1 := New(LinkedListObjectPointerType,
  18.               InitializeList (SizeOf(String), UnsortedOrder, TRUE, FALSE));
  19.                              { Element size } { Sort order }  { Settings }
  20.  
  21.      { Add some data }
  22.      SomeData := 'First element';  Data1^.Add (SomeData);
  23.      SomeData := 'Second element'; Data1^.Add (SomeData);
  24.      SomeData := 'Third element';  Data1^.Add (SomeData);
  25.      SomeData := 'Forth element';  Data1^.Add (SomeData);
  26.  
  27.      { Duplicate first data type into a new array list }
  28.      Data2 := New(ArrayListObjectPointerType, InitializeDuplicate (Data1));
  29.  
  30.      Data1^.Free; { Dispose the first data type (the linked list) }
  31.  
  32.      WriteLn ('* Duplicated linked data into an array *');
  33.  
  34.      { Create a iterator and perform a task with all elements }
  35.      with Data2^.CreateIterator^ do begin
  36.           repeat
  37.                 WriteLn (String(Content^));
  38.                 WalkForward;
  39.           until IsEnd;
  40.           Free; { Iterator }
  41.      end;
  42.  
  43.      Data2^.Free; { Dispose the second data type (the array list) }
  44. end.